home *** CD-ROM | disk | FTP | other *** search
- #! /usr/bin/perl -w
-
- $0 =~ s,.*/,,;
- $version="v1.1";
- $program=$0;
- $debug=0;
- $mailto='mailto:skunkware@sco.com';
- $baseref='http://hyperion.pdev.sco.com/skunkware';
- $isweb=0;
-
- sub usage {
- warn "@_\n" if @_;
- $! = 0;
- die <<EOF;
- Usage: $0 -w | -c file name prev next
- -w - Generate pages for the Web
- -c - Generate pages for the CD-ROM
- file - name of the template (.tmpl) file
- name - the name of the package
- prev - the name of the previous link
- next - the name of the next link
-
- Use the word NONE for the prev and next parameters if the page doesnt
- have a previous or next page in the document chain.
-
- EOF
- }
-
- if (@ARGV<1 || $#ARGV != 4) {
- usage();
- }
-
- $mode="0";
-
- if($ARGV[0] eq "-w" || $ARGV[0] eq "web") {
- $mode="SKUNK_WEB";
- $isweb=1;
- }
- elsif($ARGV[0] eq "-c" || $ARGV[0] eq "cd") {
- $mode="SKUNK_CD";
- }
-
- if ($mode eq "0") {
- usage();
- }
-
- $now=`date '+%A %b %d, %Y at %T %Z'`; chop $now;
- $basefile=$ARGV[1];
- $shortname=$ARGV[2];
- $previous=$ARGV[3];
- $next=$ARGV[4];
- $realbase=`basename $basefile`; chop $realbase;
- #if ($isweb) {
- # if (not -d $shortname) {
- # mkdir($shortname,0755) or die "$program error: Could not create directory $shortname\n";
- # }
- # $output="$shortname/index.html";
- #} else {
- $output="${realbase}.html";
- #}
- $template="${basefile}.tmpl";
- $templflt="/lib/cpp -I. -I.. -I../src -D$mode $template |";
-
- -f $template or die "$program error: $template not found\n";
-
- if ($debug) {
- print "basefile : $basefile\n";
- print "now : $now\n";
- print "shortname: $shortname\n";
- print "previous : $previous\n";
- print "next : $next\n";
- print "output : $output\n";
- print "realbase : $realbase\n";
- print "template : $template\n";
- }
-
- if ($previous eq "none" or $previous eq "NONE")
- {
- $prevref="";
- } else {
- if ($isweb) {
- $prevref="<AREA SHAPE=\"rect\" COORDS=\"112,2,236,26\" HREF=\"$previous/index.html\">";
- } else {
- $prevref="<AREA SHAPE=\"rect\" COORDS=\"112,2,236,26\" HREF=\"$previous.html\">";
- }
- }
-
- if ($next eq "none" or $next eq "NONE") {
- $nextref="";
- } else {
- if ($isweb) {
- $nextref="<AREA SHAPE=\"rect\" COORDS=\"252,1,331,26\" HREF=\"$next/index.html\">";
- } else {
- $nextref="<AREA SHAPE=\"rect\" COORDS=\"252,1,331,26\" HREF=\"$next.html\">";
- }
- }
-
- if ($debug) {
- print "nextref=$nextref\n";
- print "prevref=$prevref\n";
- }
-
- open (TEMPLATE,$templflt) or die "$program error: cannot open $template for reading\n";
- open (OUTPUT,">$output") or die "$program error: cannot open $output for output\n";
-
- sub skunkheader{
- my($foo) = @_;
- my($title,$plink,$nlink) = split(/;/,$foo);
- my($oplink,$onlink);
- if (not $plink) {
- $oplink = $prevref;
- } else {
- if ($isweb) {
- $oplink="<AREA SHAPE=\"rect\" COORDS=\"112,2,236,26\" HREF=\"$plink/index.html\">";
- } else {
- $oplink="<AREA SHAPE=\"rect\" COORDS=\"112,2,236,26\" HREF=\"$plink.html\">";
- }
- }
- if (not $nlink) {
- $onlink = $nextref;
- } else {
- if ($isweb) {
- $onlink="<AREA SHAPE=\"rect\" COORDS=\"252,1,331,26\" HREF=\"$nlink/index.html\">";
- } else {
- $onlink="<AREA SHAPE=\"rect\" COORDS=\"252,1,331,26\" HREF=\"$nlink.html\">";
- }
- }
-
- if ($debug) {
- print "skunkheader: title='$title'\n";
- print " oplink='$oplink'\n";
- print " onlink='$onlink'\n";
- }
-
- if (not $title) {
- warn "$program: No TITLE specified in SKUNKHEADER\n";
- }
-
- if (not $isweb) {
- #
- # This is the header information for the Skunkware CD-ROM
- #
- print OUTPUT <<EOF;
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
- <!-- DO NOT EDIT -->
- <!-- Automatically generated from $template by $program $version -->
- <!-- DO NOT EDIT -->
- <HTML>
- <HEAD>
- <TITLE>$title</TITLE>
- <LINK REV="made" HREF="$mailto">
- </HEAD>
- <BODY BGCOLOR="#ffffff">
-
- <MAP NAME="skunknav">
- <AREA SHAPE="rect" COORDS="347,1,460,26" HREF="$baseref/$shortname">
- $oplink
- $onlink
- <AREA SHAPE="rect" COORDS="3,1,93,26" HREF="index.html">
- </MAP>
-
- <TABLE CELLSPACING="0" CELLPADDING="0" WIDTH="100%" BORDER="0">
- <TR ALIGN="LEFT" VALIGN="TOP">
- <TD ROWSPAN="2" WIDTH="20%">
- <IMG SRC="gif/sk97s.gif" HEIGHT="104" WIDTH="108" ALIGN="BOTTOM">
- </TD>
- <TD VALIGN="BOTTOM" WIDTH="79%">
- <IMG ISMAP USEMAP="#skunknav" SRC="gif/skunknav.gif" HEIGHT="26"
- WIDTH="466" ALIGN="BOTTOM" BORDER="0">
- </TD>
- </TR>
- <TR>
- <TD VALIGN="TOP">
- <IMG SRC="gif/${shortname}.gif" HEIGHT="26" ALIGN="BOTTOM">
- </TD>
- </TR>
- </TABLE>
-
- <H2 ALIGN="CENTER">Last Updated: $now</H2>
- EOF
- } else {
- #
- # This is the header information for the Skunkware On-line pages
- #
- print OUTPUT <<EOF;
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
- <!-- DO NOT EDIT -->
- <!-- Automatically generated from $template by $program $version -->
- <!-- DO NOT EDIT -->
- <HTML>
- <HEAD>
- <TITLE>$title</TITLE>
- <LINK REV="made" HREF="$mailto">
- </HEAD>
- <BODY BGCOLOR="#ffffff">
-
- <MAP NAME="skunknav">
- <AREA SHAPE="rect" COORDS="347,1,460,26" HREF="$baseref/$shortname">
- $oplink
- $onlink
- <AREA SHAPE="rect" COORDS="3,1,93,26" HREF="index.html">
- </MAP>
-
- <TABLE CELLSPACING="0" CELLPADDING="0" WIDTH="100%" BORDER="0">
- <TR ALIGN="LEFT" VALIGN="TOP">
- <TD ROWSPAN="2" WIDTH="20%">
- <IMG SRC="gif/sk97s.gif" HEIGHT="104" WIDTH="108" ALIGN="BOTTOM">
- </TD>
- <TD VALIGN="BOTTOM" WIDTH="79%">
- <IMG ISMAP USEMAP="#skunknav" SRC="gif/skunknav.gif" HEIGHT="26"
- WIDTH="466" ALIGN="BOTTOM" BORDER="0">
- </TD>
- </TR>
- <TR>
- <TD VALIGN="TOP">
- <IMG SRC="gif/${shortname}.gif" HEIGHT="26" ALIGN="BOTTOM">
- </TD>
- </TR>
- </TABLE>
-
- <H2 ALIGN="CENTER">Last Updated: $now</H2>
- EOF
- }
- }
-
- sub skunkfooter {
- my($foo) = @_;
-
- if ($isweb) {
- #
- # Print out the footer of a page for the On-line version of the page.
- # This should conform to the corporate guidelines.
- #
- print OUTPUT <<EOF;
- <P><HR ALIGN=LEFT>
- <P> <FONT SIZE=-2>
- © Copyright 1997 The Santa Cruz Operation, Inc. All rights reserved.
- </FONT>
- </BODY>
- </HTML>
- EOF
- } else {
- #
- # Print out the fotter for the CD-ROM version.
- #
- print OUTPUT <<EOF;
- <P><HR ALIGN=LEFT>
- <P> <FONT SIZE=-2>
- © Copyright 1997 The Santa Cruz Operation, Inc. All rights reserved.
- </FONT>
- </BODY>
- </HTML>
- EOF
- }
- }
-
- sub start_packagelist {
- my($foo) = @_;
-
- print OUTPUT <<EOF;
- <H2 ALIGN="CENTER">Package List</H2>
- <CENTER><TABLE WIDTH="100%" BORDER="1" CELLSPACING="0" CELLPADDING="2">
- <TR>
- <TH WIDTH="11%" HEIGHT="23">Name</TH>
- <TH WIDTH="62%">Description</TH>
- <TH WIDTH="9%">Version</TH>
- <TH WIDTH="7%">OSR5</TH>
- <TH WIDTH="11%">UnixWare</TH>
- </TR>
- EOF
- }
-
- sub end_packagelist {
- my($foo) = @_;
-
- print OUTPUT <<EOF;
- </TABLE></CENTER>
- <H4><HR ALIGN="LEFT"></H4>
- EOF
- }
-
- sub startpack {
- my($linkref,$desc) = @_;
- print OUTPUT <<EOF;
- <H4><A NAME="$linkref"></A>$desc</H4>
- <BLOCKQUOTE>
- EOF
- }
-
- sub endpack {
- my($foo) = @_;
-
- print OUTPUT <<EOF;
- </BLOCKQUOTE>
- <P> </P>
- EOF
- }
-
- sub source {
- my($site) = @_;
-
- print OUTPUT <<EOF;
- <P>
- <A HREF="$site">
- <IMG SRC="gif/origsrc.gif" ALT="Original source code" HSPACE="20" BORDER="0"
- HEIGHT="32" WIDTH="160" ALIGN="CENTER"></A>
- <A HREF="$site">$site</A></P>
- EOF
- }
-
- sub homepage {
- my($page) = @_;
-
- print OUTPUT <<EOF;
- <P>
- <A HREF="$page">
- <IMG SRC="gif/homepage.gif" ALT="Package Home page" HSPACE="20" BORDER="0"
- HEIGHT="32" WIDTH="160" ALIGN="CENTER"></A>
- <A HREF="$page">$page</A></P>
- EOF
- }
-
- sub osr5dist {
- my($location) = @_;
- my($volfile);
- if ($location =~ /osr5\//) {
- if (not $location =~ /\/$/) {
- $location = "$location/";
- }
- $volfile="${location}VOLS.tar";
- print OUTPUT <<EOF;
- <P><A HREF="$baseref/$volfile">
- <IMG SRC="gif/osr5dist.gif" HSPACE="20" BORDER="0" HEIGHT="32" WIDTH="160"
- ALIGN="CENTER" ALT="OpenServer Distribution"></A>
- <A HREF="$baseref/$location">$location</A></P>
- EOF
- } else {
- print OUTPUT <<EOF;
- <P><A HREF="$location">
- <IMG SRC="gif/osr5dist.gif" HSPACE="20" BORDER="0" HEIGHT="32" WIDTH="160"
- ALIGN="CENTER" ALT="OpenServer Distribution">
- $location
- </A></P>
- EOF
- }
- }
-
- sub uw2dist {
- my($location) = @_;
- my($volfile);
- if ($location =~ /uw2\//) {
- if (not $location =~ /\/$/) {
- $location = "$location/";
- }
- print OUTPUT <<EOF;
- <P><A HREF="$baseref/$location">
- <IMG SRC="gif/uw2dist.gif" HSPACE="20" BORDER="0" HEIGHT="32" WIDTH="160"
- ALIGN="CENTER" ALT="UnixWare Distribution"></A>
- <A HREF="$baseref/$location">$location</A></P>
- EOF
- } else {
- print OUTPUT <<EOF;
- <P><A HREF="$location">
- <IMG SRC="gif/uw2dist.gif" HSPACE="20" BORDER="0" HEIGHT="32" WIDTH="160"
- ALIGN="CENTER" ALT="UnixWare Distribution">
- $location
- </A></P>
- EOF
- }
- }
-
- sub packlist{
- my($foo) = @_;
- my($linkref,$desc,$packver,$isosr5,$isuw2) = split(/;/, $foo);
-
- print OUTPUT <<EOF;
- <TR>
- <TD><A HREF="#$linkref">$linkref</A></TD>
- <TD>$desc</TD>
- <TD>$packver</TD>
- <TD ALIGN="CENTER">$isosr5</TD>
- <TD ALIGN="CENTER">$isuw2</TD>
- </TR>
- EOF
- }
-
- LINE: while (defined($line = <TEMPLATE>)) {
- next LINE if $line =~ /^# [0-9]* \"/;
- chop $line;
- if ($line =~ s/@@\@SKUNKHEADER\((.*)\)//) { skunkheader($1);}
- elsif ($line =~ s/@@\@SKUNKFOOTER//) { skunkfooter();}
- elsif ($line =~ s/@@\@START_PACKAGELIST//) {start_packagelist();}
- elsif ($line =~ s/@@\@END_PACKAGELIST//) {end_packagelist();}
- elsif ($line =~ s/@@\@STARTPACK\((.*);(.*)\)//) {startpack($1,$2);}
- elsif ($line =~ s/@@\@ENDPACK//) {endpack();}
- elsif ($line =~ s/@@\@OSR5DIST\((.*)\)//) {osr5dist($1);}
- elsif ($line =~ s/@@\@UW2DIST\((.*)\)//) {uw2dist($1);}
- elsif ($line =~ s/@@\@SOURCE\((.*)\)//) {source($1);}
- elsif ($line =~ s/@@\@HOMEPAGE\((.*)\)//) {homepage($1);}
- elsif ($line =~ s/@@\@PACKLIST\((.*)\)//) {packlist($1);}
- else {print OUTPUT "$line\n";}
- }
-